#include<iostream>
#include<queue>
#include<string>
#include<map>
#include<cstring>
using namespace std;
const int N = 1510;
map<char, int>mp1;
map<int, char>mp2;
int d[N];
int h[N], e[N], ne[N], idx;
int q[N * N];
string s;
int m, n;
void add(int a, int b)
{
	e[idx] = b, ne[idx] = h[a], h[a] = idx++;
}
bool tuopu_sort()
{
	int hh = 0, tt = -1;
	for (int i = 1; i <= n; i++) {
		if (!d[i])q[++tt] = i;
	}
	while (hh <= tt) {
		int t = q[hh++];
		for (int i = h[t]; ~i; i = ne[i]) {
			int j = e[i];
			if (--d[j] == 0) {
				q[++tt] = j;
			}
		}
	}
	return tt == n - 1 ? 1 : 0;
}
int main()
{
	cin >> m;
	memset(h, -1, sizeof(h));
	while (m--) {
		cin >> s;
		if (!mp1[s[0]]) mp1[s[0]] = ++n;
		if (!mp1[s[2]]) mp1[s[2]] = ++n;
		if (!mp1[s[3]]) mp1[s[3]] = ++n;
		int x = mp1[s[0]];
		int y = mp1[s[2]];
		int z = mp1[s[3]];
		mp2[x] = s[0], mp2[y] = s[2], mp2[z] = s[3];
		add(y, x);
		add(x, z);
		d[x]++, d[z]++;
	}
	if(!tuopu_sort()) {
		cout << "No Answer" << endl;
	}
	else {
		for (int i = 0; i < n; i++) {
			cout << mp2[q[i]];
		}
	}
	return 0;
}